home *** CD-ROM | disk | FTP | other *** search
- #include "scripts/sound.scr"
-
- vector fog_color = '0 0 0';
- float fog_distance = 0;
-
- void setfarplane( vector newcolor, float fdistance )
- {
- fog_color = newcolor;
- fog_distance = fdistance;
-
- $world.farplane_color( fog_color );
- $world.farplane( fog_distance );
- }
-
- void fadefog( vector newcolor, float newdistance, float fogfadetime )
- {
- float i;
- float n;
- float frontlerp;
- float backlerp;
- vector oldcolor;
- float olddist;
-
- oldcolor = fog_color;
- olddist = fog_distance;
-
- n = fogfadetime / 0.05;
- for( i = 0; i < n; i++ )
- {
- frontlerp = i / n;
- backlerp = ( 1.0 - frontlerp );
-
- fog_color = oldcolor * backlerp + newcolor * frontlerp;
- fog_distance = olddist * backlerp + newdistance * frontlerp;
-
- $world.farplane_color( fog_color );
- $world.farplane( fog_distance );
-
- wait( 0.05 );
- }
-
- $world.farplane_color( newcolor );
- $world.farplane( newdistance );
- }
-
- /*
-
- The time it takes an object to reach its apogee is (initial velocity /
- acceleration)
-
- The maximum height that an object reaches is ( initial velocity ^ 2 ) /
- ( 2 * acceleration )
-
- Let initial velocity = Vo
- Let acceleration = a
- Let Time = t
- Let Maximum Height = h
-
- t = Vo a = Vo
- ---- or ----
- a t
-
- substituting this into the other equation we get:
-
- h = Vo^2
- -------
- 2 * a
-
- h = Vo^2
- -------
- 2 * Vo
- ---------
- t
-
- h = Vo * t
- --------
- 2
-
- Solving for Vo and then substituting in the first equation will give you
- an acceleration
-
-
- h = ( v * v ) / ( 2 * a )
- h = ( v * v ) / ( 2v / t )
- h = v / ( 2 / t )
- h = ( v * t ) / 2
- 2h = vt
- v = 2ht
-
-
- a = 2ht/t
-
- */
-
- void FlipMove( entity org, entity tile, entity destination, vector rot, float height, float movetime )
- {
- float vel;
- float acc;
- float t;
- float dist = 0;
- float endtime;
- vector r;
-
- //
- // // try to correct inaccuracy
- // height -= height / ( movetime * 10 );
- //
- // t = movetime * 0.5;
- //
- // acc = ( 2 * height ) / ( t * t );
- // vel = acc * t;
- //
- // vel *= 0.05;
- // acc *= 0.05 * 0.05;
- //
- // endtime = ( movetime + 0.0499 ) / 0.05;
- //
-
- //
- // optimized version of above
- //
- t = 0.1 / movetime;
- vel = 2 * t * ( height - height * t );
- acc = vel * t;
- r = rot * ( t * 0.5 );
-
- endtime = movetime * 20;
-
- org.time( movetime );
- org.movetoent( destination );
-
- tile.time( 0.05 );
- for( t = 0; t < endtime; t++ )
- {
- dist += vel;
-
- tile.rotateto( r * t );
-
- // ADDED BY MBJ
-
- tile.playsound( "sound/ambience/special/flip1.wav" );
-
- // ADDED BY MBJ
-
- tile.moveUp( vel );
- waitfor( tile );
-
- vel -= acc;
- }
-
- if ( dist )
- {
- tile.moveDown( dist );
- tile.rotateto( rot );
- waitfor( tile );
- }
- }
-
- void shrink_alice()
- {
- // $player.holster();
- wait(.1);
- $player.god(0);
- freezeplayer();
- fakeplayer();
- $fakeplayer.anim("death_falling");
- float scalecount = 1;
-
- for(scalecount = 1; scalecount > 0; scalecount = scalecount - .05)
- {
- $fakeplayer.scale(scalecount);
- wait(.1);
- }
- $fakeplayer.hide();
- $player.hide();
- $player.health(0);
- $player.dead();
- }
-
- // DHM - These are callable by entities or script.
- void DrugFade()
- {
- if ( fadeisactive() == 0 )
- {
- cam_fadeout( 0.15, 0, 0, 0, 1, 0 );
- wait( 0.1 );
- drugview( 1 );
- cam_fadein( 0.6, 1, 1, 1, 1, 2 );
- wait( 0.5 );
- cam_fadeout( 10, 1, 1, 1, 1, 2 );
- wait( 4 );
- drugview( 0 );
- cam_fadein( 0.2, 0, 0, 0, 1, 0 );
- wait( 0.2 );
- clearfade();
- }
- }
-
- void IceFade()
- {
- if ( fadeisactive() == 0 )
- {
- cam_fadein( 0.4, 0, 0, 0, 1, 3 );
- wait( 0.35 );
- cam_fadeout( 6, 0, 0, 0, 1, 3 );
- wait( 6 );
- clearfade();
- }
- }
-